package com.ruoyi.service;

import com.ruoyi.domain.vo.BehaviorPunchingRecordVo;
import com.ruoyi.domain.vo.BehaviorRecodeVo;
import com.ruoyi.domain.vo.BehaviorVo;
import com.ruoyi.domain.vo.BehaviorsCo2ReductionVo;
import com.ruoyi.system.domain.Behavior;

import java.time.LocalDate;
import java.util.List;

public interface ILowCarbonBehaviorService {
    /**
     *  添加低碳行为和记录
     */
//    public int insertLowCarbonBehavior(BehaviorVo behavior);
    List<BehaviorsCo2ReductionVo> getBehaviorsCo2Reduction(Long UserId);

    // 低碳行为打卡
    void behaviorPunchCard(BehaviorPunchingRecordVo behaviorPunchingRecordVo);

//    //获得今日某行为减碳量
    Double getReduceCo2Today(Long UserId, Long behaviorCode, LocalDate today);
//
    //获得某行为每日减碳量限制
    Double getReduceCo2LimitationByBehaviorCode(Long behaviorCode);

    // 通过行为量转换为减碳量
    Double getReduceCo2ByBehaviorValue(Double behaviorValue, Long behaviorCode);

    // 低碳行为打卡（当该次打卡超过限制时）
    void behaviorPunchCardSub(BehaviorPunchingRecordVo behaviorPunchingRecordVo, Double reduceCo2);

    List<BehaviorVo> getLowCarbonBehaviorList();
//
//    //通过低碳行为名称获得低碳行为编号
//    Long getBehaviorCodeByName(String behaviorName);
//
//    //通过低碳行为类型名称获得低碳行为类型编号
//    String getBehaviorTypeIdByType(String behaviorType);
    Double getConversionRateByBehaviorCode(Long behaviorCode);
}

